package cn.javass.dp.factorymethod.demo3;

public class Client {
    public static void main(String[] args) {
        ExportOperate ex = new ExportDBOperate();
        ex.export("哈哈");
    }
}
//1导出功能API
interface  ExportFileApi {
    boolean export(String data);
}
//2 工厂类 提供实例的导出方法  通过子类重写工厂方法 来创建不同的实例，提供默认实现方案
class ExportOperate {
    public boolean export(String data) {
        ExportFileApi api = factoryMethod();
        return api.export("data");
    }

    protected ExportFileApi factoryMethod() {
        return new ExportTextFile();
    }
}
class ExportDB implements ExportFileApi {
    @Override
    public boolean export(String data) {
        System.out.println("使用DB方式实现");
        return false;
    }
}
class ExportTextFile implements  ExportFileApi {
    @Override
    public boolean export(String data) {
        System.out.println("使用text文本方式实现");
        return false;
    }
}

class ExportDBOperate extends ExportOperate {
    @Override
    protected ExportFileApi factoryMethod() {
        return new ExportDB();
    }
}





